console.log(THREE.Scene)
/**
  创建场景对象
*/
var scene = new THREE.Scene()
/**
 创建一个立方体几何对象Geometry
*/
var geometry = new THREE.BoxGeometry(100, 100, 100)

//材质对象Material 颜色、透明度等属性，
var material = new THREE.MeshLambertMaterial({
  color: 0xff00ff,
})

//网格模型对象Mesh
var mesh = new THREE.Mesh(geometry, material)

/**
 创建一个球体几何对象Geometry
*/
var sphereGeometry = new THREE.SphereGeometry(80, 40, 40)
// 设置几何球体材质
var meshSphere = new THREE.Mesh(sphereGeometry, material)

/**
 创建一个圆柱体几何对象Geometry
*/
var cylinderGeometry = new THREE.CylinderGeometry(40, 40, 60, 35)
// 设置几何球体材质
var meshCylinderGeometry = new THREE.Mesh(cylinderGeometry, material)

/**
 创建一个正八体几何对象Geometry
*/
var octahedronGeometry = new THREE.OctahedronGeometry(40)
// 设置几何球体材质
var meshOctahedronGeometry = new THREE.Mesh(octahedronGeometry, material)

// 网格模型对象Mesh添加到场景
scene.add(mesh)
//球体网格模型沿Y轴正方向平移120
meshSphere.translateX(300)
scene.add(meshSphere)

//
meshCylinderGeometry.translateX(-300)
scene.add(meshCylinderGeometry)

//
meshOctahedronGeometry.translateY(-300)
scene.add(meshOctahedronGeometry)
/**
 * 光源设置
 */

//  点光源 参数0xffffff定义的是光照强度
var point = new THREE.PointLight(0x444444)
// 点光源位置设置
point.position.set(400, 200, 300)
// 点光源添加到场景
scene.add(point)

// 环境光
var ambient = new THREE.AmbientLight(0x444444)
scene.add(ambient)

// 相机设置
var width = window.innerWidth
var height = window.innerHeight
//窗口宽高比
var k = width / height
//三维场景显示范围控制系数，系数越大，显示的范围越大
var s = 200

var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000)
// 设置相机位置
camera.position.set(300, 300, 200)
// 设置相机方向(指向的场景对象)
camera.lookAt(scene.position)

/**
 * 创建渲染器对象
 */
var renderer = new THREE.WebGLRenderer()
//设置渲染区域尺寸
renderer.setSize(width, height)
// 设置背景色
renderer.setClearColor(0xb9d3ff, 1)
document.body.appendChild(renderer.domElement)
var T0 = new Date()
/**
 * 根据时间控制自旋转
 */
function render() {
  var T1 = new Date()
  var t = T1 - T0
  T0 = T1

  // 执行渲染操作 指定场景、相机作为参数
  renderer.render(scene, camera)
  // 每次绕y轴旋转0.01弧度
  // requestAnimationFrame(render)
  // 旋转角速度0.001弧度每毫秒
  // mesh.rotateY(0.001 * t)
}
// 一般调用渲染方法.render()进行渲染的渲染频率控制在每秒30~60次，人的视觉效果都很正常，也可以兼顾渲染性能。
render()

var controls = new THREE.OrbitControls(camera, renderer.domElement)
controls.addEventListener('change', render)
